home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / dl_exsrc.zoo / perrorf.c < prev    next >
C/C++ Source or Header  |  1994-07-03  |  763b  |  39 lines

  1. /* originally from Dale Schumacher's dLibs */
  2. /* modified 7/3/94 by sb to accept printf()-style message string */
  3.  
  4. /*
  5.  * standard "print error message" function
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <errno.h>
  10. #include <string.h>
  11. #include <stdarg.h>
  12. #include <stdlib.h>
  13.  
  14. #if __STDC__
  15. void perrorf(const char *fmt, ...)
  16. #else
  17. void perrorf(fmt)
  18.   const char *fmt;
  19. #endif
  20. {
  21.   char *argv0 = getenv("ARGV");
  22.   va_list ap;
  23.  
  24.   if (argv0) {
  25.     argv0 += strlen(argv0) + 1;
  26.     fputs(argv0, stderr);
  27.     fputs(": ", stderr);
  28.   }
  29.   if(fmt && *fmt) {
  30.     va_start(ap, fmt);
  31.     vfprintf(stderr, fmt, ap);
  32.     va_end(ap);
  33.     fputs(": ", stderr);
  34.   }
  35.   if((argv0 = strerror(errno)) != NULL)
  36.     fputs(argv0, stderr);
  37.   fputs(".\n", stderr);
  38. }
  39.